package model.repositorio;

import java.util.Calendar;
import java.util.List;

import javax.persistence.Query;

import model.entidades.Agendamento;
import model.entidades.Usuario;
import model.repositorio.util.ConexaoBD;

public class AgendamentoDAO extends GenericDAOImpl<Agendamento>{
	
	public AgendamentoDAO(){
		setEntityManager( ConexaoBD.getEntityManager() );
	}
	
	public List<Agendamento> getAgendamentos(Usuario profissional, Calendar data){
		String hql = "select a from Agendamento p where (a.profissional = :profissional and a.data = :data ";
		Query consulta = getEntityManager().createQuery(hql);
		consulta.setParameter("profissional", profissional);
		consulta.setParameter("data", data);
		@SuppressWarnings("unchecked")
		List<Agendamento> resultado = consulta.getResultList();
		if (resultado != null && resultado.size() > 0) {
			return resultado;
		} else {
			return null;
		}
	}
	
	public List<Agendamento> buscaPorParametros(Usuario profissional, Calendar data) {

		String hql = "select p from Agendamento p where (p.profissional = :profissional and p.data = :data)";
		Query consulta = getEntityManager().createQuery(hql);
		consulta.setParameter("profissional", profissional);
		consulta.setParameter("data", data);

		@SuppressWarnings("unchecked")
		List<Agendamento> resultado = consulta.getResultList();
		if (resultado != null && resultado.size() > 0) {
			return resultado;
		} else {
			return null;
		}

	}

}
